package com.compunit.composite.core.interfaces.cx;

/**
 * <code>IBinding</code> defines a pair of fully qualified
 * class names of concrete implementations including a
 * single provider and a single consumer. A provider is
 * the class that contains the <code>provided</code> tag
 * and the consumer is the class that contains the
 * <code>required</code> tag.
 *
 * @author Yi Wang (Neakor)
 * @version Creation date: 10-27-2009 23:17 EST
 * @version Modified date: 11-12-2009 12:23 EST
 */
public interface ICxBinding {
	
	/**
	 * Set the provider of this binding.
	 * @param provider The <code>String</code> provider
	 * fully qualified class name.
	 */
	public void setProvider(final String provider);
	
	/**
	 * Set the consumer of this binding.
	 * @param consumer The <code>String</code> consumer
	 * fully qualified class name.
	 */
	public void setConsumer(final String consumer);

	/**
	 * Retrieve the fully qualified class name of the
	 * provider class.
	 * @return The <code>String</code> fully qualified
	 * class name.
	 */
	public String getProvider();

	/**
	 * Retrieve the fully qualified class name of the
	 * consumer class.
	 * @return The <code>String</code> fully qualified
	 * class name.
	 */
	public String getConsumer();
}
